home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 76 / XENIATGM66.iso / Indiana Jones / Indiana Jones.exe / RESOURCE / PREVIEW.GOB / cog_inf_impswitcher.cog < prev    next >
Text File  |  1999-11-15  |  25KB  |  769 lines

  1. # Jones 3D Cog Script
  2. #
  3. # INF_IMPSWITCHER
  4. #
  5. # Switches out imp_parts
  6. #
  7. # [SXC]
  8. #
  9. # 6/15/99 SXC
  10. #
  11. # (C) 1998 LucasArts Entertainment Company LLC. All Rights Reserved
  12. #
  13. # ========================================================================================
  14.  
  15. symbols
  16.  
  17.     message     startup
  18.     message     activate
  19.  
  20.     thing       player                      local
  21.     thing       actorindy
  22.     
  23.     keyframe    in_placelow=in_pickup_low.key   local
  24.     
  25.     thing       safepos                    
  26.     model       indyhand=hand_in.3do        local
  27.     
  28.     thing       impstand
  29.     cog         targetcog
  30.  
  31.     thing       swingpos        
  32.     
  33.     thing       imppartpos
  34.     thing       curpart
  35.     
  36.     int         curpart_itemnum
  37.     int         curthing_player=0 
  38.     int         imp_placed = 1
  39.     int         num_correctpart
  40.     int         num_wrongpart
  41.     
  42.     template    imp1_rumbl=imp1move                     local
  43.     model       imp1_rumbl_on=imp1_vibrat_inv_on.3do    local
  44.     
  45.     template    imp2_invis=imp2move                     local
  46.     model       imp2_invis_on=imp2_invis_inv_on.3do     local
  47.                                                         
  48.     template    imp3_joh=imp3move                       local
  49.     model       imp3_joh_on=imp3_levit_inv_on.3do       local
  50.                                                         
  51.     template    imp4_power=imp4move                     local
  52.     model       imp4_power_on=imp4_energ_inv_on.3do     local
  53.                                                         
  54.     template    mardukhead=roboheadmove               local
  55.     
  56. # SOUNDS
  57.  
  58.     # generic not working lines
  59.     sound       indylineb0=inxj058.wav                  local
  60.     sound       indylineb1=inxj059.wav                  local
  61.     sound       indylineb2=inxj060.wav                  local
  62.     sound       indylineb3=inxj061.wav                  local
  63.     sound       indylineb4=inxj090.wav                  local
  64.     sound       indylineb5=inxj095.wav                  local
  65.     
  66.     # saylines to explain the plot
  67.     sound       indyfirstline0=im05j05.wav              local       # uh-oh Turner stuck the wrong part in there
  68.     sound       indyfirstline1=im05j11.wav              local       # turner fouled up again
  69.     sound       indyfirstline2=im05j06.wav              local       # the inscription reads
  70.     
  71.     sound       indy_impline1=im05j07.wav               local       # verily I will shake the earth
  72.     sound       indy_impline2=im05j02.wav               local       # the unseen shall reveal the unimagined
  73.     sound       indy_impline3=im05j09.wav               local       # thus do I lift man to new heights
  74.     sound       indy_impline4=im05j10.wav               local       # my power will change the world
  75.     sound       indy_impline5=im04j01.wav               local       # hmnn..a headless horeseman    
  76.  
  77.     # stand in sounds for the imp parts
  78.     sound       imppartplace=aet_gem_place.wav  local
  79.     sound       imppartwrong=aet_lightning_01.wav       local
  80.     sound       imppartright=aet_lightning_02.wav       local
  81.     
  82.     sound       imppart1loop=imp1_on_loop.wav           local
  83.     sound       imppart2loop=imp2_on_loop.wav           local
  84.     sound       imppart3loop=imp3_on_loop.wav           local
  85.     sound       imppart4loop=imp4_on_loop.wav           local
  86.     
  87.     sound       notbudgeline=inxj098.wav                local
  88.     
  89.     int         currand                                 local
  90.     int         lastrand                                local
  91.     int         screen                                  local
  92.     int         placechan                               local
  93.     int         firsttime=0                             
  94.     int         firstturnertime=0                       local
  95.     int         safetyflag                              local
  96.     int         horsestand=0                
  97.     
  98.     flex        informlines                             local
  99.     flex        null_playerarmed                        local
  100.     flex        null_activ                              local
  101.     flex        full_playernull                         local
  102.     flex        do_it_baybee                            local
  103.     flex        sorry_no_cigar                          local        
  104.     
  105. end
  106.  
  107. # ========================================================================================
  108.  
  109. code
  110.  
  111. startup:
  112.     player = GetLocalPlayerThing();
  113.     //SetCollideType(curpart, 0);
  114. return;
  115.            
  116. # ========================================================================================
  117.  
  118. activate:
  119.     //handles first activate
  120.     if ((firsttime == 0) && (safetyflag == 0))
  121.     {
  122.         call informlines;
  123.         return;
  124.     }
  125.     
  126.     //weapons and lighter
  127.     if ((GetCurWeapon(player) != 0) &&
  128.         (GetCurWeapon(player) != 13) && 
  129.         (safetyflag == 0))
  130.     {
  131.         curthing_player=GetCurWeapon(player);
  132.         //printint(curthing_player);
  133.         
  134.         if (imp_placed == 0)
  135.         {
  136.             call null_playerarmed;
  137.             return;
  138.         }
  139.         
  140.         if (imp_placed == 1)
  141.         {
  142.             call null_activ;
  143.             return;
  144.         }
  145.     }
  146.     
  147.     //robohead
  148.     if ((GetCurItem(player) == 112) && 
  149.         (safetyflag == 0))
  150.     {
  151.         curthing_player=112;
  152.         //printint(curthing_player);
  153.         
  154.         if (imp_placed == 0)
  155.         {
  156.             call null_playerarmed;
  157.             return;
  158.         }
  159.         
  160.         if (imp_placed == 1)
  161.         {
  162.             call null_activ;
  163.             return;
  164.         }
  165.     }
  166.     
  167.     //no item
  168.     if ((GetCurItem(player) == 0) && 
  169.         (GetCurWeapon(player) == 0) && 
  170.         (safetyflag == 0))
  171.     {
  172.         curthing_player=0;
  173.         //printint(curthing_player);
  174.         if (imp_placed == 0)
  175.         {
  176.             call informlines;
  177.             return;
  178.         }
  179.         
  180.         if (imp_placed == 1)
  181.         {
  182.             call full_playernull;
  183.             return;
  184.         }
  185.     }
  186.     
  187.     //wrong item
  188.     if ((GetCurItem(player) != 0) &&
  189.         (GetCurItem(player) != 112))
  190.         
  191.     {
  192.         call null_activ;
  193.         return;
  194.     }
  195.     
  196.     if ((safetyflag == 1) && (num_correctpart != 15))
  197.     {
  198.         //call null_activ;
  199.         SetActorFlags(player, 0x200000);
  200.         MakeMeStop(player);
  201.         StartCutscene(0);
  202.         PlayVoice(player, notbudgeline, 1, 1);
  203.         Sleep(0.5);
  204.         EndCutscene();
  205.         ClearActorFlags(player, 0x200000);
  206.         return;
  207.     }
  208.     
  209. return;
  210.  
  211. # ========================================================================================
  212.  
  213. null_activ:    
  214.     //NULLACTIV
  215.     //full or empty stand no current weapon or item or holding something
  216.     if (screen == 0)
  217.         {
  218.             screen = 1;
  219.             StopThing(player);
  220.             SetActorFlags(player, 0x200000);
  221.             MakeMeStop(player);
  222.             StartCutscene(1);
  223.             SetExtCamOffsetToThing(swingpos);
  224.             //SetExtCamLookOffsetToThing(imppartpos);
  225.             Sleep(0.35);
  226.             
  227.             //handling with saylines
  228.             currand = RandBetween(0, 5);
  229.             While (lastrand == currand)
  230.             {
  231.                 currand = RandBetween(0, 5);
  232.             }
  233.             PlayVoice(player, indylineb0[currand], 1, 1);
  234.             lastrand = currand;
  235.             
  236.             Sleep(1);
  237.             ClearActorFlags(player, 0x200000);
  238.             EndCutscene();
  239.             RestoreExtCam();
  240.             screen = 0;
  241.         }
  242.         
  243. return;
  244.         
  245. # ========================================================================================
  246.  
  247. null_playerarmed:
  248.     //empty stand and the player is activating with an item or weapon
  249.     if (screen == 0)
  250.         {
  251.             screen = 1;
  252.             MakeMeStop(player);
  253.             StartCutscene(1);
  254.             
  255.             AISetCutsceneMode(actorindy);
  256.             CopyPlayerHolsters(player, actorindy);
  257.             StopThing(player);
  258.             
  259.             SetCameraFocus(2, swingpos);
  260.             SetCameraSecondaryFocus(2, imppartpos);
  261.             SetCurrentCamera(2);
  262.             SetCameraFOV(90, 0, 0);
  263.             
  264.             SetActorFlags(player, 0x200000);
  265.             SetCollideType(impstand, 0);
  266.             SetCollideType(curpart, 0);
  267.             TeleportThing(player, safepos);
  268.             ClearThingFlags(actorindy, 0x80000);
  269.             DeselectWeaponWait(player);
  270.             SetThingFlags(player, 0x80000);
  271.             
  272. //create that part on the stand
  273. // rumbler part
  274.             if (curthing_player == 14)
  275.             {
  276.                 if (horsestand == 1)
  277.                 {
  278.                     PlayKey(actorindy, in_placelow, 4, 0x12, 0);            
  279.                     Sleep(0.35);
  280.                 }
  281.                 else
  282.                 {    
  283.                     PlayMode(actorindy, 61, 0);            
  284.                     Sleep(0.35);
  285.                 }
  286.                 SetThingMesh(actorindy, 15, indyhand, 0);
  287.                 curpart = CreateThing(imp1_rumbl, imppartpos);
  288.                 CaptureThing(curpart);
  289.                 PlaySoundThing(imppartplace, curpart, 1, 10, 20, 0);
  290.                 curpart_itemnum = 14;
  291.                 imp_placed = 1;
  292.                 ChangeInv(player, 14, -1);
  293.                 Sleep(1);
  294.                 if (curthing_player == num_correctpart)
  295.                 {
  296.                     call do_it_baybee;
  297.                     screen=0;
  298.                     SetCollideType(impstand, 3);
  299.                     SetCollideType(curpart, 0);
  300.                     //SetCameraPosition(1, GetThingPos(swingpos));
  301.                     return;
  302.  
  303.                 }    
  304.                 else if (curthing_player == num_wrongpart)
  305.                 {
  306.                     call sorry_no_cigar;
  307.                     SetCollideType(impstand, 3);
  308.                     SetCollideType(curpart, 3);
  309.                     SendMessage(targetcog, user1);
  310.                     //print("sending user1");
  311.                     screen=0;
  312.                     return;
  313.                 }
  314.                 else
  315.                 {
  316.                     call sorry_no_cigar;
  317.                 }
  318.             }
  319.             
  320. // invisibility
  321.             if (curthing_player == 15)
  322.             {
  323.                 if (horsestand == 1)
  324.                 {
  325.                     PlayKey(actorindy, in_placelow, 4, 0x12, 0);            
  326.                     Sleep(0.35);
  327.                 }
  328.                 else
  329.                 {    
  330.                     PlayMode(actorindy, 61, 0);            
  331.                     Sleep(0.35);
  332.                 }
  333.                 SetThingMesh(actorindy, 15, indyhand, 0);
  334.                 curpart = CreateThing(imp2_invis, imppartpos);
  335.                 CaptureThing(curpart);
  336.                 PlaySoundThing(imppartplace, curpart, 1, 10, 20, 0);
  337.                 imp_placed = 1;
  338.                 curpart_itemnum = 15;
  339.                 ChangeInv(player, 15, -1);
  340.                 Sleep(1);
  341.                 if (curthing_player == num_correctpart)
  342.                 {
  343.                     call do_it_baybee;
  344.                     screen=0;
  345.                     SetCollideType(impstand, 3);
  346.                     SetCollideType(curpart, 0);
  347.                     //SetCameraPosition(1, GetThingPos(swingpos));
  348.                     return;
  349.                 }    
  350.                 else if (curthing_player == num_wrongpart)
  351.                 {
  352.                     call sorry_no_cigar;
  353.                     SetCollideType(impstand, 3);
  354.                     SetCollideType(curpart, 3);
  355.                     SendMessage(targetcog, user1);
  356.                     //print("sending user1");
  357.                     screen=0;
  358.                     return;
  359.                 }
  360.                 else
  361.                 {
  362.                     call sorry_no_cigar;
  363.                 }
  364.             }
  365.             
  366. // jewel of heaven
  367.             if (curthing_player == 16)
  368.             {
  369.                 if (horsestand == 1)
  370.                 {
  371.                     PlayKey(actorindy, in_placelow, 4, 0x12, 0);            
  372.                     Sleep(0.35);
  373.                 }
  374.                 else
  375.                 {    
  376.                     PlayMode(actorindy, 61, 0);            
  377.                     Sleep(0.35);
  378.                 }
  379.                 SetThingMesh(actorindy, 15, indyhand, 0);
  380.                 curpart = CreateThing(imp3_joh, imppartpos);
  381.                 CaptureThing(curpart);
  382.                 PlaySoundThing(imppartplace, curpart, 1, 10, 20, 0);
  383.                 imp_placed = 1;
  384.                 curpart_itemnum = 16;
  385.                 ChangeInv(player, 16, -1);
  386.                 Sleep(1);
  387.                 if (curthing_player == num_correctpart)
  388.                 {
  389.                     call do_it_baybee;
  390.                     screen=0;
  391.                     SetCollideType(impstand, 3);
  392.                     SetCollideType(curpart, 3);
  393.                     SetCameraPosition(1, GetThingPos(swingpos));
  394.                     return;
  395.                 }    
  396.                 else if (curthing_player == num_wrongpart)
  397.                 {
  398.                     call sorry_no_cigar;
  399.                     SetCollideType(impstand, 3);
  400.                     SetCollideType(curpart, 3);
  401.                     SendMessage(targetcog, user1);
  402.                     //print("sending user1");
  403.                     screen=0;
  404.                     return;
  405.                 }
  406.                 else
  407.                 {
  408.                     call sorry_no_cigar;
  409.                 }
  410.             }
  411.  
  412. // power part            
  413.             if (curthing_player == 17)
  414.             {
  415.                 if (horsestand == 1)
  416.                 {
  417.                     PlayKey(actorindy, in_placelow, 4, 0x12, 0);            
  418.                     Sleep(0.35);
  419.                 }
  420.                 else
  421.                 {    
  422.                     PlayMode(actorindy, 61, 0);            
  423.                     Sleep(0.35);
  424.                 }
  425.                 SetThingMesh(actorindy, 15, indyhand, 0);
  426.                 curpart = CreateThing(imp4_power, imppartpos);
  427.                 CaptureThing(curpart);
  428.                 PlaySoundThing(imppartplace, curpart, 1, 10, 20, 0);
  429.                 imp_placed = 1;
  430.                 curpart_itemnum = 17;
  431.                 ChangeInv(player, 17, -1);
  432.                 Sleep(1);
  433.                 if (curthing_player == num_correctpart)
  434.                 {
  435.                     call do_it_baybee;
  436.                     screen=0;
  437.                     SetCollideType(impstand, 3);
  438.                     SetCollideType(curpart, 3);
  439.                     //SetCameraPosition(1, GetThingPos(swingpos));
  440.                     return;
  441.                 }    
  442.                 else if (curthing_player == num_wrongpart)
  443.                 {
  444.                     call sorry_no_cigar;
  445.                     SetCollideType(impstand, 3);
  446.                     SetCollideType(curpart, 3);
  447.                     SendMessage(targetcog, user1);
  448.                     //print("sending user1");
  449.                     screen=0;
  450.                     return;
  451.                 }
  452.                 else
  453.                 {
  454.                     call sorry_no_cigar;
  455.                 }
  456.             }
  457.             
  458. // robohead
  459.             if (curthing_player == 112)
  460.             {
  461.                 if (horsestand == 1)
  462.                 {
  463.                     PlayKey(actorindy, in_placelow, 4, 0x12, 0);            
  464.                     Sleep(0.35);
  465.                 }
  466.                 else
  467.                 {    
  468.                     PlayMode(actorindy, 61, 0);            
  469.                     Sleep(0.35);
  470.                 }
  471.                 SetThingMesh(actorindy, 15, indyhand, 0);
  472.                 curpart = CreateThing(mardukhead, imppartpos);
  473.                 CaptureThing(curpart);
  474.                 SetThingLight(curpart, '1 1 1', 0.01, 0);
  475.  
  476.                 PlaySoundThing(imppartplace, curpart, 1, 10, 20, 0);
  477.                 imp_placed = 1;
  478.                 curpart_itemnum = 112;
  479.                 ChangeInv(player, 112, -1);
  480.                 Sleep(1);
  481.                 if (curthing_player == num_correctpart)
  482.                 {
  483.                     call do_it_baybee;
  484.                     screen=0;
  485.                     SetCollideType(impstand, 3);
  486.                     SetCollideType(curpart, 3);
  487.                     SetCameraPosition(1, GetThingPos(swingpos));
  488.                     return;
  489.                 }    
  490.                 else if (curthing_player == num_wrongpart)
  491.                 {
  492.                     call sorry_no_cigar;
  493.                     SetCollideType(impstand, 3);
  494.                     SetCollideType(curpart, 3);
  495.                     SendMessage(targetcog, user1);
  496.                     //print("sending user1");
  497.                     screen=0;
  498.                     return;
  499.                 }
  500.                 else
  501.                 {
  502.                     call sorry_no_cigar;
  503.                 }
  504.             }
  505.             
  506.             CopyOrientAndPos(actorindy, player);
  507.             SetThingFlags(actorindy, 0x80000);
  508.             ClearActorFlags(player, 0x200000);
  509.             ClearThingFlags(player, 0x10);
  510.             ClearThingFlags(player, 0x80000);
  511.             SetCollideType(impstand, 3);
  512.             //SetCollideType(curpart, 3);
  513.             SetCameraPosition(1, GetThingPos(swingpos));
  514.             SetCurrentCamera(1);
  515.             SetCameraFOV(90, 0, 0);
  516.             EndCutscene();
  517.         }
  518.         screen=0;
  519. return;    
  520.  
  521. # ========================================================================================
  522.  
  523. full_playernull:
  524.     //
  525.     //stand has an item and player is activating with no current weapon or item
  526.     if (screen == 0)
  527.     {
  528.         screen = 1;
  529.         imp_placed = 0;
  530.         SetActorFlags(player, 0x200000);
  531.         StopThing(player);
  532.         MakeMeStop(player);
  533.         StartCutscene(1);
  534.         if (num_correctpart == 112)
  535.         {
  536.             PlayMode(player, 24, 0);
  537.         }
  538.         else if (num_correctpart != 112)
  539.         {
  540.             PlayMode(player, 61, 0);
  541.         }
  542.         SetExtCamOffsetToThing(swingpos);
  543.         Sleep(0.35);
  544.         
  545.         //destroy the part on the stand
  546.         DestroyThing(curpart);
  547.         
  548.         //place the item in inventory
  549.         ChangeInv(player, curpart_itemnum, 1.0);
  550.         SetInvAvailable(player, curpart_itemnum, 1);
  551.         JonesInvItemChanged(curpart_itemnum);
  552.         
  553.         Sleep(1);
  554.         EndCutscene();
  555.         RestoreExtCam();
  556.         screen = 0;
  557.         SendMessage(targetcog, user2);
  558.         ClearActorFlags(player, 0x200000);
  559.     }
  560.         
  561. return;
  562.  
  563. # ========================================================================================
  564.  
  565. do_it_baybee:
  566.  
  567.     if (curthing_player == 14)
  568.     {
  569.         MoveToFrame(curpart, 1, 1);
  570.         WaitForStop(curpart);
  571.         placechan = PlaySoundThing(imppartright, curpart, 1, 10, 20, 0);
  572.         SetThingModel(curpart, imp1_rumbl_on);
  573.         ThingLightAnim(curpart, '0.0 0.5 1.0', 0.2, '0.0 1.0 1.0', 0.2, 1);
  574.         safetyflag = 1;
  575.         WaitForSound(placechan);
  576.         PlaySoundThing(imppart1loop, curpart, 1, 4, 10, 1);
  577.         Sleep(0.5);
  578.         SendMessage(targetcog, user0);
  579.     }
  580.     
  581.     if (curthing_player == 15)
  582.     {
  583.         MoveToFrame(curpart, 1, 1);
  584.         WaitForStop(curpart);
  585.         placechan = PlaySoundThing(imppartright, curpart, 1, 10, 20, 0);
  586.         SetThingModel(curpart, imp2_invis_on);
  587.         ThingLightAnim(curpart, '0.0 0.5 1.0', 0.2, '0.0 1.0 1.0', 0.2, 1);
  588.         //sends message to tell target cog that the right part has been inserted
  589.         safetyflag = 1;
  590.         WaitForSound(placechan);
  591.         PlaySoundThing(imppart2loop, curpart, 1, 4, 10, 1);
  592.         Sleep(0.5);
  593.         SendMessage(targetcog, user0);
  594.     }
  595.     
  596.     if (curthing_player == 16)
  597.     {
  598.         MoveToFrame(curpart, 1, 1);
  599.         WaitForStop(curpart);
  600.         placechan = PlaySoundThing(imppartright, curpart, 1, 10, 20, 0);
  601.         SetThingModel(curpart, imp3_joh_on);
  602.         ThingLightAnim(curpart, '0.0 0.5 1.0', 0.2, '0.0 1.0 1.0', 0.2, 1);
  603.         //sends message to tell target cog that the right part has been inserted
  604.         safetyflag = 1;
  605.         WaitForSound(placechan);
  606.         PlaySoundThing(imppart3loop, curpart, 1, 4, 10, 1);
  607.         Sleep(0.5);
  608.         SendMessage(targetcog, user0);
  609.     }
  610.     
  611.     if (curthing_player == 17)
  612.     {
  613.         MoveToFrame(curpart, 1, 1);
  614.         WaitForStop(curpart);
  615.         placechan = PlaySoundThing(imppartright, curpart, 1, 10, 20, 0);
  616.         SetThingModel(curpart, imp4_power_on);
  617.         ThingLightAnim(curpart, '0.0 0.5 1.0', 0.2, '0.0 1.0 1.0', 0.2, 1);
  618.         //sends message to tell target cog that the right part has been inserted
  619.         safetyflag = 1;
  620.         WaitForSound(placechan);
  621.         PlaySoundThing(imppart4loop, curpart, 1, 4, 10, 1);
  622.         Sleep(0.5);
  623.         SendMessage(targetcog, user0);
  624.     }
  625.     
  626.     if (curthing_player == 112)
  627.     {
  628.         MoveToFrame(curpart, 1, 1);
  629.         WaitForStop(curpart);
  630.         placechan = PlaySoundThing(imppartright, curpart, 1, 10, 20, 0);
  631.         //sends message to tell target cog that the right part has been inserted
  632.         safetyflag = 1;
  633.         WaitForSound(placechan);
  634.         Sleep(0.25);
  635.         SendMessage(targetcog, user0);
  636.         DestroyThing(curpart);
  637.     }
  638.     
  639. return;
  640.  
  641. # ========================================================================================
  642.  
  643. sorry_no_cigar:
  644.  
  645.     PlaySoundThing(imppartwrong, curpart, 1, 10, 20, 0);
  646.     Sleep(1);
  647.     
  648.     currand = RandBetween(0, 5);
  649.     While (lastrand == currand)
  650.     {
  651.         currand = RandBetween(0, 5);
  652.     }
  653.     PlayVoice(player, indylineb0[currand], 1, 1);
  654.     lastrand = currand;
  655.  
  656. return;
  657.         
  658. # ========================================================================================
  659.  
  660. informlines:
  661.  
  662.     SetActorFlags(player, 0x200000);
  663.     StopThing(player);
  664.     MakeMeStop(player);
  665.     
  666.     StartCutscene(1);
  667.     SetExtCamOffsetToThing(swingpos);
  668.     //SetExtCamLookOffsetToThing(imppartpos);
  669.     Sleep(0.35);
  670.     
  671.     //handling with saylines
  672.     if ((firsttime == 0) && (num_correctpart == 14)) 
  673.     {
  674.        PlayVoice(player, indyfirstline2, 1, 1);
  675.        PlayVoice(player, indy_impline1, 1, 1);
  676.        PlayVoice(player, indyfirstline0, 1, 1);
  677.        Sleep(0.5);
  678.        call full_playernull;
  679.     }
  680.     
  681.     if ((firsttime == 0) && (num_correctpart == 15))
  682.     {
  683.        PlayVoice(player, indyfirstline2, 1, 1);
  684.        PlayVoice(player, indy_impline2, 1, 1);
  685.        PlayVoice(player, indyfirstline0, 1, 1);
  686.        Sleep(0.5);
  687.        call full_playernull;
  688.     }
  689.     
  690.     if ((firsttime == 0) && (num_correctpart == 16))
  691.     {
  692.        PlayVoice(player, indyfirstline2, 1, 1);
  693.        PlayVoice(player, indy_impline3, 1, 1);
  694.        PlayVoice(player, indyfirstline0, 1, 1);
  695.        Sleep(0.5);
  696.        call full_playernull;
  697.     }
  698.     
  699.     if ((firsttime == 0) && (num_correctpart == 17))
  700.     {
  701.        PlayVoice(player, indyfirstline2, 1, 1);
  702.        PlayVoice(player, indy_impline4, 1, 1);
  703.        PlayVoice(player, indyfirstline0, 1, 1);
  704.        Sleep(0.5);
  705.        call full_playernull;
  706.     }
  707.     
  708.     if ((firsttime == 0) && (num_correctpart == 112))
  709.     {
  710.         //PlayVoice(player, indyfirstline2, 1, 1);
  711.         PlayVoice(player, indy_impline5, 1, 1);
  712.         PlayVoice(player, indyfirstline0, 1, 1);
  713.         Sleep(0.5);
  714.         call full_playernull;
  715.     }
  716.     
  717.     //second time through
  718.     if ((firsttime == 1) && (num_correctpart == 14)) 
  719.     {
  720.        PlayVoice(player, indyfirstline2, 1, 1);
  721.        PlayVoice(player, indy_impline1, 1, 1);
  722.        Sleep(0.5);
  723.     }
  724.     
  725.     if ((firsttime == 1) && (num_correctpart == 15))
  726.     {
  727.        PlayVoice(player, indyfirstline2, 1, 1);
  728.        PlayVoice(player, indy_impline2, 1, 1);
  729.        Sleep(0.5);
  730.     }
  731.     
  732.     if ((firsttime == 1) && (num_correctpart == 16))
  733.     {
  734.        PlayVoice(player, indyfirstline2, 1, 1);
  735.        PlayVoice(player, indy_impline3, 1, 1);
  736.        Sleep(0.5);
  737.     }
  738.     
  739.     if ((firsttime == 1) && (num_correctpart == 17))
  740.     {
  741.        PlayVoice(player, indyfirstline2, 1, 1);
  742.        PlayVoice(player, indy_impline4, 1, 1);
  743.        Sleep(0.5);
  744.     }
  745.     
  746.     if ((firsttime == 1) && (num_correctpart == 112))
  747.     {
  748.         //PlayVoice(player, indyfirstline2, 1, 1);
  749.         PlayVoice(player, indy_impline5, 1, 1);
  750.         Sleep(0.5);
  751.     }
  752.     
  753.     if (firstturnertime == 0)
  754.     {
  755.         Sleep(0.5);
  756.         firstturnertime=1;
  757.         firsttime=1;
  758.     }
  759.         
  760.     ClearActorFlags(player, 0x200000);
  761.     EndCutscene();
  762.     RestoreExtCam();
  763.     
  764. return;
  765.  
  766. # ========================================================================================
  767.  
  768. end
  769.